OS. C#でのOpenSTAADプログラムの記述
この例では、C#でOpenSTAADアプリケーションを記述するために必要ないくつかの概念を紹介します。
Visual Studio 2019のC#プロジェクトの例は、こちらからダウンロードできます。
OS. C#でのOpenSTAADの開始
OS. Geometryメソッドの使用
-
「OpenSTAADUI.OSGeometryUI geometry = os.Geometry;」と入力し、<Enter>キーを押します。
これにより、ジオメトリ変数がOpenSTAADのGeometryグループのメソッドとして定義されます。
-
「int nodeCount = geometry.GetNodeCount();」と入力し、<Enter>キーを押します。
これにより、OpenSTAADメソッドGetNodeCount()を使用して、アクティブなSTAAD.Proモデル内のノードの数が指定した変数に返されるようになります。
-
「int beamCount = geometry.GetMemberCount();」と入力し、<Enter>キーを押します。
同様に、OpenSTAADメソッドGetMemberCount()を使用して、アクティブなSTAAD.Proモデル内のメンバーの数が指定した変数に返されるようになります。
この時点で、プログラムは次のようになります。
using System;
using System.Runtime.InteropServices;
namespace OSEOMConsoleApp
{
class Program
{
static void Main (string[] args)
{
OpenSTAADUI.OpenSTAAD os = Marshal.GetActiveObject("StaadPro.OpenSTAAD") as OpenSTAADUI.OpenSTAAD;
OpenSTAADUI.OSGeometryUI geometry = os.Geometry;
int nodeCount = geometry.GetNodeCount();
int beamCount = geometry.GetMemberCount();
}
}
}
OS. OpenSTAAD出力の生成
-
「Console.WriteLine("Node Count = " + nodeCount); 」と入力し、<Enter>キーを押します。
読み取り可能な形式で出力するために、数値のnodeCountの値が文字列と連結されます。
-
「Console.WriteLine("Beam Count = " + beamCount);」と入力します。
同様に、ここでは、文字列に変換されたbeamCountの値をテキストと連結し、その結果を端末に表示しています。
最終的なプログラムは次のようになります。
using System;
using System.Runtime.InteropServices;
namespace OSEOMConsoleApp
{
class Program
{
static void Main (string[] args)
{
OpenSTAADUI.OpenSTAAD os = Marshal.GetActiveObject("StaadPro.OpenSTAAD") as OpenSTAADUI.OpenSTAAD;
OpenSTAADUI.OSGeometryUI geometry = os.Geometry;
int nodeCount = geometry.GetNodeCount();
int beamCount = geometry.GetMemberCount();
Console.WriteLine("Node Count = " + nodeCount);
Console.WriteLine("Beam Count = " + beamCount);
Console.ReadLine();
}
}
}